package org.example.day05;

import java.util.Scanner;

/**
 * @author zlxad
 * @version 1.0
 * @description: TODO
 * 小明在玩一个游戏，游戏规则如下：<br> 在游戏开始前，小明站在坐标轴原点处（坐标值为0）。<br> 给定一组指令和一个幸运数，每个指令都是一个整数，小明按照指定的要求前进或者后退指定的步数。前进代表朝坐标轴的正方向走，后退代表朝坐标轴的负方向走。<br> 幸运数为一个整数，如果某个指令正好和幸运数相等，则小明行进步数加1。<br> <br> 例如：<br> 幸运数为3，指令为[2,3,0,-5]<br> 指令为2，表示前进2步；<br> 指令为3，正好和幸运数相等，前进3+1=4步；<br> 指令为0，表示原地不动，既不前进，也不后退。<br> 指令为-5，表示后退5步；<br> <br> 请你计算小明在整个游戏过程中，小明所处的最大坐标值。<br> <br>
 *
 * 小明在玩一个游戏，游戏规则如下： 在游戏开始前，小明站在坐标轴原点处（坐标值为0）。
 * 给定一组指令和一个幸运数，每个指令都是一个整数，小明按照指定的要求前进或者后退指定的步数。
 * 前进代表朝坐标轴的正方向走，后退代表朝坐标轴的负方向走。 幸运数为一个整数，如果某个指令正好和幸运数相等，则小明行进步数加1。
 * 例如： 幸运数为3，指令为[2,3,0,-5] 指令为2，表示前进2步； 指令为3，正好和幸运数相等，前进3+1=4步；
 * 指令为0，表示原地不动，既不前进，也不后退。 指令为-5，表示后退5步；  请你计算小明在整个游戏过程中，小明所处的最大坐标值。
 * @date 2024/3/11 15:22
 */
public class test091  {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt(); // 输入指令的总个数n
        if (n < 1 || n > 100) {
            System.out.println("12345"); // 如果n不在规定范围内，输出12345并结束程序
            return;
        }

        int m = scanner.nextInt(); // 输入幸运数m
        if (m < -100 || m > 100) {
            System.out.println("12345"); // 如果m不在规定范围内，输出12345并结束程序
            return;
        }

        int current_position = 0, max_position = 0; // 初始化小明当前坐标和最大坐标值
        for (int i = 0; i < n; i++) {
            int instruction = scanner.nextInt(); // 输入指令值
            if (instruction == m) { // 如果指令等于幸运数
                // 计算新位置
                current_position += (instruction != 0) ? (instruction > 0 ? instruction + 1 : instruction - 1) : 0;
            } else {
                current_position += instruction; // 按指令值移动
            }
            if (current_position > max_position) {
                max_position = current_position; // 更新最大坐标值
            }
        }

        System.out.println(max_position); // 输出最大坐标值
        scanner.close();
    }
}


